t=marker.key (1).time

t1=marker.key (2).time

vel=(thisComp.layer("b blanche").position.key(2)-thisComp.layer("b blanche").position.key(1))/

(thisComp.layer("b blanche").position.key(2).time-thisComp.layer("b blanche").position.key(1).time)

vel1=position.velocityAtTime(t1)

u=thisComp.layer("b noir").position.valueAtTime(t)-thisComp.layer("b blanche").position.valueAtTime(t)

u1=length(vel)*normalize(u)

v=thisComp.layer("b blanche").position.valueAtTime(t)-thisComp.layer("b jaune").position.valueAtTime(t)

v1=length(vel)*normalize(v)

w=thisComp.layer("b jaune").position.valueAtTime(t1)-thisComp.layer("b rouge").position.valueAtTime(t1)

w1=length(vel)*normalize(w)

frot=-vel/30

A=position.value_at_time(t)

while(t<time){

t=t+this_comp.frame_duration,

A= A+vel*this_comp.frame_duration

vel= vel+frot

frot=-vel/30

if(A[1]<(this_comp.height-thisComp.layer("tapis de billard.psd").height)/2+thisLayer.height) {vel[1]=-vel[1]}

if(A[1]>(this_comp.height-thisComp.layer("tapis de billard.psd").height)/2+

thisComp.layer("tapis de billard.psd").height-thisLayer.height) {vel[1]=-vel[1]}

if(A[0]>(this_comp.width-thisComp.layer("tapis de billard.psd").width)/2+

thisComp.layer("tapis de billard.psd").width-thisLayer.width) {vel[0]=-vel[0]}

if(A[0]<(this_comp.width-thisComp.layer("tapis de billard.psd").width)/2+thisLayer.width) {vel[0]=-vel[0]}

if(length(A-thisComp.layer("b blanche").position.valueAtTime(t))<thisLayer.height) [vel=-v1*5]

if(length(A-thisComp.layer("b rouge").position.valueAtTime(t1))<thisLayer.height) [vel=w1]

}

if(time < marker.key (1).time){A=position}

A